<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vue.js - 基础</title>
</head>
<body>
    <div id="app">
        <p>单价: <input type="text" v-model="price"></p>
        <p>数量: <input type="text" v-model="num"></p>
        <p>运费: {{isNeedPost?'包邮':post}} </p>
        <P v-if="isMember">当前享受折扣: {{sale}}</P>
        <p>总金额:{{ total() }}</p>
        <p>总金额:{{ total() }}</p>
        <p>总金额:{{ total() }}</p>
    </div> 

    <!-- 引入vue框架 开发版 :包含警告 和调试信息 -->
    <script src="../lib/vue.js"></script>
    <script>
        // 不建议在插值表达式中编写过于复杂的表达式 = > 不利于维护,不直观

        /**
            需求:
                1.购物金额满 25 免运费 
                2.88会员 ,全场购物享受8.8

            使用函数方式解决, 弊端:无法实现计算结果的复用 ,每次获取都要重新执行计算 ,这样太耗性能.
        **/

        let vm = new Vue({
            el:"#app",//指定Vue挂载的DOM
            data:{//当前vue实例中使用的数据
                price:12.5,
                num:1,
                post:12,
                isMember:false,//是否会员标识
                isNeedPost:false,//是否需要免运费
                sale:0,//折扣的钱
            },
            methods:{//当前Vue实例中使用到的方法
                total(){
                let tmp = this.price * this.num; //首先预计算
                let sale = 0;    
                //计算会员折扣问题
                if(this.isMember){
                    sale = (tmp * 0.12).toFixed(2);
                    tmp = tmp * 0.88;
                } 

                this.sale = sale;
                //判断是否购物满25   
                if(tmp>=25){
                    this.isNeedPost = true;
                    return tmp;
                }
                this.isNeedPost = false;
                    console.log('正在计算商品总价...');
                return tmp + this.post;
                }
            }
        })
    </script>
</body>
</html>